package com.ymk.config;

import java.util.LinkedHashSet;
import java.util.Objects;
import java.util.Set;

public class JavaProperties {
    // 包名
    private String pkg;
    // 类名
    private String cmdName;

    private String cmdCode;

    private String type;

    public JavaProperties(String cmdName,String type,String cmdCode , String pkg) {
        this.cmdName = cmdName;
        this.pkg = pkg;
        this.cmdCode = cmdCode;
        this.type = type;
    }

    public String getPkg() {
        return pkg;
    }

    public String getCmdName() {
        return cmdName;
    }

    public String getCmdCode() {
        return cmdCode;
    }

    public String getType() {
        return type;
    }

    /**
     * 成员属性封装对象.
     */
    public static class Field {
        // 成员属性类型
        private String fieldType;
        // 成员属性名称
        private String fieldName;

        public String getFieldType() {
            return fieldType;
        }

        public void setFieldType(String fieldType) {
            this.fieldType = fieldType;
        }

        public String getFieldName() {
            return fieldName;
        }

        public void setFieldName(String fieldName) {
            this.fieldName = fieldName;
        }

        /**
         * 一个类的成员属性 一个名称只能出现一次
         * 我们可以通过覆写equals hash 方法 然后放入Set
         *
         * @param o 另一个成员属性
         * @return 比较结果
         */
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Field field = (Field) o;
            return Objects.equals(fieldName, field.fieldName);
        }

        @Override
        public int hashCode() {
            return Objects.hash(fieldType, fieldName);
        }
    }

}